export {};

declare global {
  interface Date {
    format(param: string): string;
  }
}
/**
 * @description 格式化日期
 * @method 用法
 * new Date(params.data[2]).format('yyyy-MM-dd')
 * 或者
 * const d = new Date()
 * d.format('yyyy-MM-dd')
 * @param {string} format
 * @return {string}
 */

Date.prototype.format =  function(format: string): string {
  const o = {
    "M+": this.getMonth() + 1, // month
    "d+": this.getDate(),    // day
    "h+": this.getHours(),   // hour
    "m+": this.getMinutes(), // minute
    "s+": this.getSeconds(), // second
    "q+": Math.floor((this.getMonth() + 3) / 3),  // quarter
    "S": this.getMilliseconds() // millisecond
  };
  if (/(y+)/.test(format)) {
    format = format.replace(
      RegExp.$1,
      (this.getFullYear() + "").substr(4 - RegExp.$1.length)
    );
  }
  for (const k in o) {
    if (new RegExp("(" + k + ")").test(format)) {
      format = format.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? o[k] :
          ("00" + o[k]).substr(("" + o[k]).length)
      );
    }
  }
  return format;
}

